
pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    // 题⽬5：求指定值范围内，所有奇数的斐波那契数字之和。(20)
    // 输⼊：20 #求斐波那契数⼩于20的奇数和
    // 输出：23 #说明：0 1 1 2 3 5 8 13, 奇数和为23
    gen_fib(threshold).into_iter().map(|num| num * (num % 2)).sum()
}


fn gen_fib(threshold: u32) -> Vec<u32> {
    // 生成fibonacci数列
    match threshold {
        0 => vec![0],
        1 => vec![0, 1],
        _ => {
            let mut arr: Vec<u32> = vec![0, 1];
            let mut i: usize = 1;

            while arr[i-1] + arr[i] <= threshold {
                arr.push(arr[i-1] + arr[i]);
                i += 1;
            }
            arr
        }
    }
    
}
